#pragma once

#include <DirectXMath.h>
#include <vector>
#include "Snapshot.h"

struct CurveNode
{
	DirectX::XMFLOAT4 location;
	DirectX::XMFLOAT4 tangent;
};

class KochanekBartelsCurve
{
public:
	KochanekBartelsCurve(const std::vector<Snapshot>& positions, float tension = 0, float bias = 0);
	~KochanekBartelsCurve(void);
	DirectX::XMVECTOR GetLocation(const double time) const;
private:
	std::vector<CurveNode> m_nodes;
};
